<template>
  <div class="app-container">
    <el-card class="box-card">
      <div slot="header" class="card-title">
        <span>债权管理</span>
      </div>
      <div class="loanApprove-box">
        <!-- 日期选择器容器 -->
        <div class="date-box">
          <span class="date-span">日期选择</span>
          <el-date-picker
            v-model="dateRange"
            type="daterange"
            align="right"
            unlink-panels
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            :picker-options="pickerOptions"
            value-format="yyyy-MM-dd"
            @change="onDateChange"
          >
          </el-date-picker>
          <el-button type="success" class="filter-btn" @click="onSearch"
            >查询</el-button
          >
        </div>
        <div class="debtlist-box">
          <el-table
            :data="tableData"
            stripe
            style="width: 100%"
            :header-cell-style="{ background: '#e1e4e5' }"
          >
            <el-table-column prop="debtNo" label="债权编号">
            </el-table-column>
            <el-table-column prop="loanNo" label="借款编号"> </el-table-column>
            <el-table-column prop="loanStartDate" label="债权转入日期">
            </el-table-column
            ><el-table-column prop="debtYearRate" label="债权年利率"> </el-table-column>
            <el-table-column prop="debtOriginalMoney" label="债权原始金额">
            </el-table-column>
            <el-table-column prop="matchedMoney" label="债权匹配金额">
            </el-table-column>
            <el-table-column
              prop="matchedStatus"
              label="债权状态"
              :formatter="stateFormat"
            >
            </el-table-column>
            <el-table-column label="操作">
              <el-button type="primary" size="mini" disabled>管理</el-button>
            </el-table-column>
          </el-table>
        </div>
        <el-pagination
          @current-change="onPageChange"
          background
          layout="prev, pager, next"
          :page-count="filterData.totalPages"
          :current-page="filterData.curPage"
          :page-size="filterData.perPage"
        >
        </el-pagination>
      </div>
    </el-card>
  </div>
</template>
  
  <script>
import { mapActions } from "vuex";
export default {
  data() {
    return {
      filterData: {
        // 日期开始时间
        start: "",
        // 日期结束时间
        end: "",
        // 总页数
        totalPages: 1,
        // 当前页
        curPage: 1,
        // 每页显示几条数据
        perPage: 3,

      },
      pickerOptions: {
        shortcuts: [
          {
            text: "最近一周",
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit("pick", [start, end]);
            },
          },
          {
            text: "最近一个月",
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
              picker.$emit("pick", [start, end]);
            },
          },
          {
            text: "最近三个月",
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
              picker.$emit("pick", [start, end]);
            },
          },
        ],
      },
      dateRange: "",
      tableData: [
      ],
    };
  },
  methods: {
    ...mapActions({
      getDebtList: "loan/getDebtList",
    }),
    getLoanList() {
      this.getDebtList(this.filterData).then((res) => {
        this.tableData = res.content;
        this.filterData.totalPages = res.paginateInfo.pages;
      });
    },
    // 点击查询按钮
    onSearch() {
      this.filterData.curPage = 1;
      this.getLoanList();
    },
    // 格式化匹配状态
    stateFormat(row) {
      if (row.matchedStatus === 0) {
        return "未匹配";
      } else if (row.matchedStatus === 1) {
        return "部分匹配";
      } else if (row.matchedStatus === 2) {
        return "完全匹配";
      }
    },
    // 当前页码发生变化时的回调
    onPageChange(index) {
      this.filterData.curPage = index;
      this.getLoanList();
    },
    // 当日期选择器选择的内容发生改变
    onDateChange(data) {
      if (data) {
        this.filterData.start = data[0];
        this.filterData.end = data[1];
      } else {
        this.filterData.start = "";
        this.filterData.end = "";
      }
    },
  },
  created() {
    this.getLoanList();
  },
};
</script>
  
  <style lang="scss" scoped>
.app-container {
  .loanApprove-box {
    .date-span {
      margin-right: 20px;
    }
    .filter-btn {
      margin-left: 10px;
    }
  }
  .debtlist-box {
    margin-top: 15px;
  }
}
</style>